#include "../Modulos/CGrafica.h"
#include <stdlib.h>

int main(){
    CapaGrafica CGrafica;
    float arancel;
    int opcion;
    long int cedula;
    Socio * socio;
    Coche * coche;
    Becado * becado;
    TipoError error;
    Iterador * iterador;
    float recaudacion, ticket;
    String matricual;

    CGrafica.ingresarArancel(arancel);
    CapaLogica CLogica(arancel);

    do{
        CGrafica.mostrarMenu();
        CGrafica.ingresarOpcion(opcion);
        switch (opcion){
            case 1:
                CGrafica.mostrarMenuSocio();
                CGrafica.ingresarOpcion(opcion);
                switch (opcion){
                    case 1:
                        CGrafica.ingresarDatosSocNormal(socio,coche);
                        break;
                    case 2:
                        CGrafica.ingresarDatosSocBecado(socio);
                        break;
                    case 3:
                        CGrafica.ingresarDatosSocEspecial(socio);
                        break;
                }
                CLogica.ingresaSocio(socio,coche,arancel,error);
                CGrafica.mensajeError(error);
                CGrafica.PressEnter();
                break;

            case 2:
                iterador = CLogica.listadoSocios();
                CGrafica.mostrarListadoSocios(iterador);
                CGrafica.PressEnter();
                break;

            case 3:
                iterador = CLogica.listadoCoches();
                CGrafica.mostrarListadoCoches(iterador);
                CGrafica.PressEnter();
                break;

            case 4:
                recaudacion = CLogica.recaudacion();
                CGrafica.mostrarRecaudacion(recaudacion);
                CGrafica.PressEnter();
                break;

            case 5:
                CLogica.becadoMayorVencimiento(becado,error);
                if (error==SIN_ERROR)
                    CGrafica.mostrarSocioBecado(becado);
                else
                    CGrafica.mensajeError(error);
                CGrafica.PressEnter();
                break;

            case 6:
                CGrafica.ingresarCedula(cedula);
                CLogica.datosSocio(cedula,socio,ticket,error);
                if (error == SIN_ERROR){
                    CGrafica.mostrarSocio(socio);
                    CGrafica.mostrarTicketSocio(ticket);
                }
                else{
                    CGrafica.mensajeError(error);
                }
                CGrafica.PressEnter();
                break;
            case 7:
                CGrafica.ingresarMatricula(matricual);
                CLogica.datosCoche(matricual,coche,error);
                if (error == SIN_ERROR){
                    CGrafica.mostrarCoche(coche);
                    CGrafica.mostrarSocioNormal(coche->getDuenio());
                }
                else
                    CGrafica.mensajeError(error);
                CGrafica.PressEnter();
                break;
        }

    }while (opcion != 8);

    return 0;
}
